The demand for speed and reliability in communications between communication devices such as servers, routers, switches and computers continues to increase. Applications or other programs that demand significant network resources, such as streaming on-line media continue to grow in popularity. Further, the number of users continues to increase and, as bandwidths increase, users invent new uses for the improved bandwidths. Thus, the demand for bandwidth in networks that are already operating near capacity appears to be ever increasing.
Ethernet-based communication networks have gained popularity in the marketplace and variations of the Ethernet technologies continue to provide improved bandwidths. More specifically, the Ethernet family has been expanded to include a Fast Ethernet system and a Gigabit Ethernet system. Both systems provide significant bandwidth improvements over prior Ethernet configurations. However, even these Ethernet systems cannot adequately meet the growing demand.
To address this shortcoming, many current communication networks have scalability features that allow additional communication paths to be added as the demand for bandwidth increases. In Ethernet based systems, adding network adapters such as network interface cards (NICs) facilitate these new communication paths. A network adapter typically includes an adapter card and a network driver, which is code to facilitate operation of the adapter card by, e.g., the operating system of a computer.
Generally, multiple adapter cards can be “bundled”, e.g., plugged into a communication device and configured to transmit and receive data in parallel. An Etherchannel driver typically implements a load-sharing arrangement for the bundled adapters in Ethernet networks. Many standards have been developed, such as IEEE 802.3a & d to address bundled adapters for a cluster of communications devices. Bundled adapters are not assigned to a particular communication device, but transmissions from clustered communications devices can be assigned to one of the bundled adapters based upon the workload of that adapter in relation to the other of the bundled adapters. From a software application's perspective, the parallel operation of the bundled adapters effectively creates a single, higher bandwidth, communications channel. For instance, a bundle of eight network adapters can multiply data transmission speeds to eight times the speed of a single adapter.
Moreover, bundled adapters may be configured to handle data transmission for a single Internet protocol (IP) address or multiple IP addresses, depending upon the number of clustered communications devices being supported by the bundled adapters. Thus, communication devices such as switches, routers and servers can be clustered and configured to share bundled adapters or can utilize a dedicated, high bandwidth channel comprised of bundled adapters.
Bundled adapters that support a cluster of communication devices can be utilized to create a high availability cluster multiprocessing (HACMP) environment. A HACMP environment ensures that a communication path is available and communication devices are reachable nearly all of the time, making downtime a rare occurrence. A communication device in a HACMP system can also incorporate failure detection schemes to detect failed communication channels.
Historically, failure detection schemes for communication networks have utilized a “heartbeat” mechanism. The heartbeat mechanism is used to detect the operational state of a network adapter, at a software application level such as HACMP, by detecting the operational state of the communications channel, i.e., whether data can successfully transmit across the channel.
Such failure detection schemes recognize the inability to transmit data across the channel and can relate that failure to the network adapter when a single network adapter handles the transmission and receipt of communications across the channel. A problem with current failure detection schemes is that they do not allow detection of a subset of the network adapters in a bundle of adapters. For bundled adapters, software applications perceive the operation of the channel and not the operation of individual adapters. In particular, if one network adapter of a bundle fails, an Etherchannel driver will retransmit the data packets assigned to the failed adapter until successful transmission occurs via other adapters in the bundle. As a result, data communications across the channel are degraded but do not necessarily fail. The process of, retransmitting until a successful communication is achieved, greatly reduces the efficiency of a communication system.